The program is written in R.
View Code
myeloma_frailty_index = function(age, cpoint01, cpoint02, cpoint03, cpoint04,
cpoint05, cpoint06, cpoint07, cpoint08,
cpoint09, cpoint10, cpoint11, cpoint12,
cpoint13, cpoint14, cpoint15, cpoint16,
apoint01, apoint02, apoint03, apoint04,
apoint05, apoint06, ipoint01, ipoint02,
ipoint03, ipoint04, ipoint05, ipoint06,
ipoint07, ipoint08)
{
#Age component
if (age<=75) {agepoint=0}
else if (age>75 & age<=80) {agepoint=1}
else if (age>80) {agepoint=2}
#sum the components of CCI, ADL, IADL
cscore=sum(cpoint01,cpoint02,cpoint03,cpoint04,cpoint05,cpoint06,
cpoint07,cpoint08,cpoint09,cpoint10,cpoint11,cpoint12,
cpoint13,cpoint14,cpoint15,cpoint16)
ascore=sum(apoint01,apoint02,apoint03,apoint04,apoint05,apoint06)
iscore=sum(ipoint01,ipoint02,ipoint03,ipoint04,ipoint05,ipoint06,
ipoint07,ipoint08)
#Code number of points for each component of Myeloma Frailty Index
#based on cutoffs, algorithm from Palumbo et al., 2015
#CCI: >=2 counts as 1 point
#ADL: <=4 counts as 1 point
#IADL: <=5 counts as 1 point
agemfi=agepoint
if (cscore<2) {ccimfi=0}
else if (cscore>=2) {ccimfi=1}
if (ascore>4) {adlmfi=0}
else if (ascore<=4) {adlmfi=1}
if (iscore>5) {iadlmfi=0}
else if (iscore<=5) {iadlmfi=1}
#sum up MFI components to compute index, create text interpretations
mfiscore=sum(agemfi,ccimfi,adlmfi,iadlmfi)
if (mfiscore==0){mfitext="Fit"}
else if (mfiscore==1){mfitext="Intermediate Fit"}
else if (mfiscore>=2){mfitext="Frail"}
#Return final score and text interpretation
#Also return individual component scores
mfireturn= list(
mfiscore = mfiscore,
mfitext = mfitext,
cscore = cscore,
ascore = ascore,
iscore = iscore
)
return(mfireturn)
}